package ln.javatest.day09.demo02;
/*
局部内部类，如果希望访问所在方法的局部变量，那么这个局部变量必须是【有效final】
只要局部变量试试不变，那么final关键字可以省略

原因：
1.new出来的对象在堆内存当中
2.局部变量是跟着方法走的，在栈内存当中
3.方法运行结束之后，立刻出栈，局部变量就会立刻消失。
4.new出来的对象会在堆当中持续存在，直到垃圾回收消失。
因为类对象比局部变量生命周期长，所以可能局部变量消失了，但类对象还需要永奥，
为了保证能用到，会直接把局部变量的数据复制拿过来用，因此要保证局部变量的数据不能发生二次改变。
*/

public class MyOuter {
    public void methodOuter(){
        //不写final也可以，只要保证num数据不变
        int num = 10;
        //错误写法！不能变，变了就不是有效final了
        //num = 20;
        class MyInner{
            public void methodInner(){
                System.out.println(num);
            }
        }
    }
}
